A data fabric is a communication network designed to interconnect large numbers of computation nodes such that the nodes can exchange data with high bandwidth and low latency. The fabric generally allows any-to-any connectivity between nodes. Data fabrics have evolved from simple shared-bus implementations, with serialized data transfers, to switched implementations, which provide highly-concurrent, high bandwidth communication between may processing nodes.
Two example applications of data fabrics include a clustered supercomputer arrangement and an Internet data center. A clustered supercomputer arrangement includes hundreds or thousands of processors and storage elements that are interconnected via the data fabric. The storage elements combine to form a single, global address space. Similarly, an Internet data center includes hundreds or thousands of processing nodes, storage elements, load distribution nodes, firewalls and other components interconnected by a data fabric. By configuring the data fabric the components can be divided (or “partitioned”) into isolated domains (or “partitions”), with each partition serving a different customer, for example.
Fabrics are currently partitioned through software-controlled configuration of switches within the fabric. The configuration software tends to be large and complex, which may lead to an increased likelihood of program bugs. Furthermore, the switch topology must be known to the configuration software in order for the configuration software to function correctly. If the topology is changed, which is likely in a typical data center as new switches and nodes are added over time, the configuration software must be kept strictly in sync with the hardware topology. Otherwise, the chances of a security lapse are greatly increased.
A system and method that address the aforementioned problems, as well as other related problems, are therefore desirable.